#ifndef LIGHT_H
#define LIGHT_H

#include"Matrix.h"

//light source

class DirectionalLight
{
public:
	float intensity;
	bool isForVertex;


	DirectionalLight(){
		intensity = 1;
		isForVertex = true;
	}

	DirectionalLight(const Vec4f& _dir,const Vec4f& _pos,float _intensity=1,bool fov=true): dir(_dir),pos(_pos),intensity(_intensity),isForVertex(fov){}


	~DirectionalLight() {}


	Vec4f GetDir() {
		return Vec4f(0, 0, 0) - dir;//incoming direction
	}

	Matrix LookAt(const Vec4f& upAxis);

private:
	Vec4f dir;
	Vec4f pos;
};



class PointLight
{
public:
	float intensity;
	Vec4f pos;

	PointLight():intensity(1.0f) {}
	PointLight(const Vec4f& _pos,float inten): pos(_pos),intensity(inten){}
	~PointLight(){}



};






#endif // !LIGHT_H

